package it.duecaffe.claysoftware.interventi.client;

import it.duecaffe.claysoftware.interventi.client.exceptions.ClayException;
import it.duecaffe.claysoftware.interventi.shared.models.UtenteModel;

import java.util.Date;

import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;

@RemoteServiceRelativePath("LogicFacadeImpl")
public interface LogicFacade extends RemoteService {
	/**
	 * Consente il login all'applicazione
	 * @param username nome utente
	 * @param password password
	 * @throws ClayException nel caso in cui l'operazione di login fallisca 
	 */
	UtenteModel login(String username, String password) throws ClayException;
	/**
	 * Inserisce o modifica un intervento nella tabella dedicata
	 * @param dataIntervento data dell'intervento
	 * @param codiceTecnico codice del tecnico
	 * @param codiceCliente codice del cliente
	 * @param descrizione descrizione dell'intervento
	 * @param oraInizio ora di inizio
	 * @param oraFine ora di fine
	 * @param pausa eventuale pausa
	 * @param dirittoChiamata diritto di chiamata
	 * @throws ClayException nel caso in cui l'operazione di inserimento fallisca
	 */
	void mergeIntervento(Date dataIntervento, String codiceTecnico, String codiceCliente, String descrizione, float oraInizio, float oraFine, float pausa, boolean dirittoChiamata) throws ClayException;
	
}
